package entorno;

public class CVSemaforo {
	
	SemaforoBinario mutex;
	SemaforoBinario cond;
	int bloqueados;
	
	public CVSemaforo(SemaforoBinario mutex2) {
		mutex = mutex2;
		cond = new SemaforoBinario(0);
		bloqueados=0;
	}
	
	public void DELAY(){
		bloqueados++;
		mutex.SIGNAL();
		cond.WAIT();
		mutex.WAIT();
	}
	
	public void RESUME(){
		if(bloqueados>0){
			bloqueados--;
			cond.SIGNAL();
		}
	}
	
	public boolean EMPTY(){
		if(bloqueados>0) return false;
		else return true;
	}

}
